當我說"沉默螺旋"(spiral of silence),你知道我在說什麼嗎?
你如果知道,我就不用解釋繼續講下去,甚至可以在這基礎上,直接討論可能的方法解決「沉默螺旋」。
當我們的code寫得越來越來,架構越來越龐雜,設計模式可以幫助我們找出解決方法,
寫出更好更優雅的程式碼,
並且讓我們討論的過程更快、更有效率。(當我說創造者模式,你就知道概念了。)
了解,使用設計模式的好處:
- 設計模式已經是前人經驗淬鍊出的方法,快速解決問題,讓你專注在實作上
- 了解設計模式,方便溝通並做Code Review
接下來都是討論物件導向語言的設計模式。(大部分的教學都是以JAVA為主)
但是探討過JS的物件之後,大致上的概念也都可以看懂,
也找到了網站以TS為基礎解釋設計模式。
就先來複習一下物件導向的基本特性吧,因為之後的設計模式都會以此為展開:
- 封裝(Encapsulation) 把事物封裝成抽象類別,可開放或隱藏自己的屬性或方法
- 繼承(Inheritance) 不用修改原本的物件,只要繼承就能使用,再擴充
- 多型(Polymorphism) 繼承來的東西表現形式都不同,也不用一樣。(如鴿子和雞都繼承了鳥類的飛,但鴿子飛高高)
SOLID是物件導向設計原則五個原則開頭字的縮寫
設計模式總共有23種,主要可以分成3種類型:
A. 創建型模式( Creational Patterns)
主要在於"創造對象",將創造與使用分開,並能增進程式碼靈活度,以及重複利用程式碼。
B.結構型模式(Structural Patterns)
將類和物件組成更大的結構,並同時保持彈性。
C.行為型模式(Behavioral Patterns) 用來識別對象間的交流模式,並分配職責。
這樣看這三大分類其實我也看不懂,明天開始每個分類都來探究1~2種,再回頭看看吧!
環遊非洲第21天-非洲可不可以有一個共同的語言?
非洲地廣、族群多、語言多,但各國都經歷過類似的歷史——殖民者入侵、家族流散...
非洲各國、以及流散在外人民開始掀起[泛非主義]運動(Pan-Africanism),希望促進非洲人民的團結。
那如果非洲是一個共同體,有沒有可能有一個共同語言?大家可以互相溝通、互相了解。呼聲最高的非洲語言就是[史瓦希利語],在非洲以史瓦希利語當作第一或第二語言的人,
約有兩億人口。
史瓦希利語主要被廣泛使用在東非,是肯亞、莫三比克、倘桑尼亞官方語言。其實我們對史瓦希利語一點都不陌生喔!因為獅子王的那句Hakuna matata
就是史瓦希利語呢!
The language of Pan-Africanism
Swahili's bid to become a language for all of Africa
Java设计模式(十三) 别人再问你设计模式,叫他看这篇文章